1. Field of the Invention
The present invention is directed to computer-implemented export engine which automatically extracts selected data directly from an object model, and automatically builds a non-object database, such as a relational database, from the extracted data.
2. Description of the Related Art
FIG. 1 is a diagram illustrating the conventional extraction of data by a conventional export engine. Referring now to FIG. 1, a physical database 20 supports an object model 22. Object model 22 might be, for example, an object model for an ecommerce platform 24. In this example, since object model 22 relates to ecommerce, object model 22 might include typical objects used in ecommerce such as a requisition 26a, an order 26b and/or an invoice 26c. 
A user interface 28 might be, for example, a graphical user interface (GUI) which allows an end user to view and access object model 22.
Database 20 is a non-object database, such as a relational database. Object model 22 communicates with database 20. In a typical embodiment, database 20 communicates via a query language such as SQL. SQL is a well-known query language for communicating with relational databases. In a typically embodiment, object model 22 does not understand SQL, and instead communicates via an object query language (OQL) which is specifically intended for object-oriented data. As an example, if ecommerce platform 24 is an ARIBA ORMS ecommerce platform, the OQL might be AQL, which is a well known OQL for use with the ARIBA ecommerce platform. An OQL to SQL translation occurs, for example, within ecommerce platform 24. The translation could be tied to the physical implementation of physical database 20. For example, the object requisition 26a might be tied to a Table 1 (not illustrated), a Table 2 (not illustrated) and a Table 3 (not illustrated) in database 20. To access fields within requisition 26a, OQL statements might be sent to object model 22, which sends out elaborate, multi-table SQL to database 20.
A client (not illustrated) that subscribes to, or otherwise has access to, ecommerce platform 24, might need to create its own separate relational database 32 to support analytical reporting and querying over the object oriented views of object model 22. An export engine 34 is used to create database 32. In the example of FIG. 1, database 32 is a staging database used in conjunction with a target database/data warehouse 35.
Unfortunately, a conventional export engine 34 cannot extract data directly from object model 22 to database 32. Generally, export engine 34 cannot perform such a direct extraction since the “object-oriented” format of object model 22 is not easily mapped to the “relational” format of database 32. As a result, export engine 34 directly accesses database 20, which is a relational database, and exports the underlying data for object model 22 from database 20 into database 32, which is also a relational database. For example, INFORMATICA has a product which can extract data directly from a relational database underlying an object model, and then build a target relational database from the extracted data, as shown in FIG. 1.
Therefore, export engine 34 is undesirably dependent on the physical implementation of database 20 underlying object model 22. This dependence causes problems. For example, since an end user views data from object model 22 in an object-oriented format through user interface 28, the end user expects queries to run off object model 22. However, this is not possible with export engine 34 since export engine 34 cannot easily map object model 22 to database 20. Moreover, with export engine 34, if changes are made to database 20, export engine 34 needs to be changed. For example, assume that object requisition 26a is implemented using Table 1 (not illustrated), Table 2 (not illustrated) and Table 3 (not illustrated) in database 20 and is later changed to be implemented using Table 1, Table 2 and Table 4 (not illustrated) in database 20. In this case, export engine 34 must be modified to access the appropriate tables. In addition, if there are changes to object model 22, such as a new field being added to an object or a field type being changed for a field within an object, or a new object model is added, the physical database must be modified. As a result, export engine 34 will also have to be modified.